﻿exec sp_addtype codigo, 'bigint', 'not null'
go
create table rubro
(
idrubro codigo primary key,
nombre_rubro varchar(90) not null,
)
go
create table cliente
(
idcliente codigo primary key,
direccion varchar(90) not null,
telefono varchar(90) not null,
celular integer not null,
nit bigint not null,
idrubro codigo references rubro(idrubro),
)
go
create table natural
(
idcliente codigo primary key references cliente(idcliente),
nombre_cliente varchar(90) not null,
app varchar(90) not null,
apm varchar(90) not null,
fecha_nacimiento datetime not null,
doc_identidad varchar(90) not null,
)
go
create table juridico
(
idcliente codigo primary key references cliente(idcliente),
rpte_legal varchar(90) not null,
razon_social varchar(90) not null,
nro_patron varchar(90) not null,
)
go
create table marca
(
idmarca codigo primary key,
nombre_marca varchar(90) not null,
)
go
create table categoria
(
idcategoria codigo primary key,
nombre_categoria varchar(90) not null,
)
go
create table subcategoria
(
idsubcategoria codigo primary key,
nombre_subcategoria varchar(90) not null,
idcategoria codigo references categoria(idcategoria),
)
go
create table producto
(
idproducto codigo primary key,
nombre_producto varchar(90) not null,
pc float,
pv float,
cantidad float,
descripcion varchar(90) not null,
idmarca codigo references marca(idmarca),
idsubcategoria codigo references subcategoria(idsubcategoria),
)
go
alter table producto add img1 varbinary(max)
alter table producto add nombre_imagen varchar(90) not null
go

create table almacen
(
idalmacen codigo primary key,
nombre_almacen varchar(90) not null,
descripcion varchar(90) not null,
)
go
create table existencia_producto
(
idproducto codigo references producto(idproducto),
idalmacen codigo references almacen(idalmacen),
primary key(idproducto, idalmacen),
estado_producto varchar(90) not null,
stock_producto varchar(90) not null,
)
go 
create table cargo
(
idcargo codigo primary key,
nombre_cargo varchar(90) not null,
)
go
create table empleado
(
idempleado codigo primary key,
nombre_empleado varchar(90) not null,
app varchar(90) not null,
apm varchar(90) not null,
usuario varchar(90) not null,
contrasena varchar(90) not null,
idcargo codigo references cargo(idcargo),
)
go
create table venta
(
idventa codigo primary key,
fecha_venta datetime not null,
gestion_venta varchar(90) not null,
total_venta float,
idcliente codigo references cliente(idcliente),
idempleado codigo references empleado(idempleado),
)
go
create table detalle_venta
(
idventa codigo references venta(idventa),
idproducto codigo references producto(idproducto),
primary key(idventa, idproducto),
precio_unitario float not null,
cantidad float not null,
gloza varchar(90) not null,
subtotal as cantidad * precio_unitario,
)
go
create table credito
(
idcredito codigo primary key,
fecha_credito datetime not null,
interes float not null,
plazo varchar(90) not null,
idventa codigo references venta(idventa),
)
go
create table cuota
(
idcuota codigo primary key,
monto float not null,
interes_corriente float not null,
interes_vencido float not null,
fecha_pago_programado datetime not null,
fecha_pago datetime not null,
total_cuota float not null,
idcredito codigo references credito(idcredito),
)
go
create table caja
(
idcaja codigo primary key,
nro_caja integer not null,
fecha_apertura datetime not null,
fecha_cierre datetime not null,
estado_caja integer not null,
)
go

alter table caja add idempleado codigo references empleado(idempleado)

go
create table transaccion
(
idtransaccion codigo primary key,
monto float not null,
gloza varchar(90) not null,
fecha_hora datetime not null,
idcaja codigo references caja(idcaja),
)
